package cn.edu.zafu.bigdata.x.zbw;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

// 泛型方法，用于找到列表中的最大值
public class GenericMaxFinder {

    public static <T extends Comparable<T>> T findMax(List<T> list) {
        if (list == null || list.isEmpty()) {
            throw new IllegalArgumentException("List must not be null or empty");
        }
        return Collections.max(list);
    }

    public static void main(String[] args) {
        // 创建一个包含整数的列表
        List<Integer> intList = new ArrayList<>();
        intList.add(10);
        intList.add(45);
        intList.add(32);
        intList.add(90);
        intList.add(23);

        // 使用findMax方法查找整数列表中的最大值
        Integer maxInt = findMax(intList);
        System.out.println("The maximum integer is: " + maxInt);

        // 创建一个包含字符串的列表
        List<String> stringList = new ArrayList<>();
        stringList.add("apple");
        stringList.add("banana");
        stringList.add("cherry");
        stringList.add("date");

        // 使用findMax方法查找字符串列表中的最大值
        String maxString = findMax(stringList);
        System.out.println("The maximum string is: " + maxString);
    }
}
